package main

import "fmt"

func main() {
	s := "sdcloneclone"
	fmt.Println(s[2:5]) //clo

	//整数切片 (类似于List<Integer>)
	intSlice := []int{}
	//var intSlice []int
	intSlice = append(intSlice, 1, 3, 5, 7, 9, 11, 13, 15)
	fmt.Println(intSlice)                 //[1 3 5 7 9 11 13 15]
	intSlice = intSlice[1:]               //去除头部
	intSlice = intSlice[:len(intSlice)-1] //去除尾部
	fmt.Println(intSlice)                 //[3 5 7 9 11 13]

	//字符切片（类似于List<Character> ）
	byteSlice := []byte{}
	byteSlice = append(byteSlice, 'a', 'b', 'c')
	fmt.Println(byteSlice) //[97 98 99]
	for _, ch := range byteSlice {
		fmt.Printf("%c ", ch) //a b c
	}
	fmt.Println()

	//字符串切片（类似于List<String>）
	var strSlice []string
	//strSlice := []string{}
	strSlice = append(strSlice, "sd", "cl", "xyt", "hahaha")
	fmt.Println(strSlice) //[sd cl xyt hahaha]

	//对象切片 (类似于List<Object>)
	var objSlice []interface{}
	//objSlice := []interface{}{}
	objSlice = append(objSlice, 'a', "sdclone", 123)
	fmt.Println(objSlice) //[97 sdclone 123]

	//普通字符串转换成字符切片 （类似于 str.toCharArray()）
	str := "hahahah"
	chSlice := []byte(str)
	fmt.Println(chSlice) //[104 97 104 97 104 97 104]

	//字符切片转换成字符串 （类似于new String(char[] chs)）
	chSlice2 := []byte{'a', 'b', 'c', 'd'}
	str2 := string(chSlice2)
	fmt.Println(str2) //abcd

}
